#include "SizeFilter.h"

#include <algorithm>

SizeFilter::SizeFilter(const double size_threshold) : 
                       size_threshold_(size_threshold) { } 

AlgResultType SizeFilter::operator () (const FilePairType& file_pair) const {
    return getSizeDiff(file_pair) > size_threshold_ ?
           AlgResultType(UNCOMPARABLE) : 
           AlgResultType(UNKNOWN);
}

double SizeFilter::getSizeDiff(const FilePairType& file_pair) const {
    return std::labs(file_pair.first->size - file_pair.second->size) * 1.0 /
           std::max(file_pair.first->size, file_pair.second->size);
}
